Next: 名称, Previous: FreeBSD 13 NFSv4 nfsuserd man(8) page 2019 中文译本, Up: FreeBSD 13 NFSv4 nfsuserd man(8) page 2019 中文译本 [Contents]
李守中是开源软件理念坚定的支持者,所以译本虽不是软件,但依旧仿照开源软件的协议发布:
如果读者发现作品中有错误的地方,劳请来信指出。任何提高作品质量的建议李守中都将虚心接纳。
更多文章可于 李守中的主页 在线浏览。
本文档根据 FreeBSD 13.2 NFS nfsuserd manpage (man 8 nfsuserd
) 翻译。
对于直译后无法准确描述软件行为的句子,李守中会根据软件行为对这些句子进行意译。对于必须添加很多内容才能实现意译的句子,李守中会尽量用直译 + 译者注 的方式来翻译。
受限于李守中的中文水平,在对句子进行意译时可能会偏离作者的本意,请读者谨慎参考。
有能力的读者可以从此链接 FreeBSD_13_NFSv4_nfsuserd_man(8)_page_2019.txt.zip 下载英文原文与本文做对照。
PS: 从遣词造句的混乱程度和排版的随意性来看,这篇文档的作者和 ‘man 4 nfsv4’ 的作者应该是同一个人…
Next: 摘要, Previous: 译者总注, Up: FreeBSD 13 NFSv4 nfsuserd man(8) page 2019 中文译本 [Contents]
nfsuserd - 为 NFSv4 服务加载用户和用户组的信息到内核,让所有版本的 NFS 支持 manage-gids 功能。
Next: 描述, Previous: 名称, Up: FreeBSD 13 NFSv4 nfsuserd man(8) page 2019 中文译本 [Contents]
nfsuserd [-domain <domain_name>] [-usertimeout <minutes>] [-usermax <max_cache_size>] [-verbose] [-force] [-manage-gids] [<num_servers>]
Next: 更多信息, Previous: 摘要, Up: FreeBSD 13 NFSv4 nfsuserd man(8) page 2019 中文译本 [Contents]
nfsuserd 将用户和用户组信息加载到内核的 NFSv4 模块中。对于基于 Kerberos 的 NFSv4,nfsuserd 必须同时在 server 和 client 上启动才能正常运行。对于不使用 Kerberos 的 NFSv4,nfsuserd 必须运行,除非所有 server 和 client 都配置为将 uid/gid 编号放入 owner 和 owner_group 字符串中。
译者注: server 和 client 都配置为将 uid/gid 编号放入 owner 和 owner_group 字符串中指的是将 FreeBSD 13 NFSv4 man(4) page 2019 中文译本 中提到过的 vfs.nfs.enable_uidtostring
和 vfs.nfsd.enable_stringtouid
两个参数配置为 1。
它还提供对 manage-gids 的支持,并且如果它被用于任何版本的 NFS,则必须在 server 上运行。
译者注: manage-gids 这个功能主要解决用户的属组超过 16 个以后,其余属组权限不生效的问题。
启动时,它将机器 DNS 域名、超时和缓存大小限制加载到内核中。然后它把用户和组信息预加载到缓存中,直到缓存大小上限并分叉 N 个子项 (默认为 4),在内核缓存未命中时使用这里的缓存来处理请求。nfsuserd:master 进程存在的唯一目的是结束 nfsuserd:slave 进程。向 nfsuserd:master 发送 SIGUSR1 信号即可停止 nfsuserd。
下面是可用的选项:
-domain <domain_name>
这个选项覆盖了默认的 DNS 域名,该域名使用机器主机名的后缀获得,或者如果该名称不是 FQDN,则使用 getaddrinfo(3) 报告的规范名称。
-usertimeout <minutes>
这个选项覆盖了默认的缓存实体的超时时间。设置更长的超时时间会有更好的性能,但如果有新的实例出现,则要等缓存过期之后才能看到新的实例。如果 user/group 数据库管理系统内几乎从不复用同样的用户名或者 uid,推荐设置更长的超时时间。默认值为 1 分钟。
-usermax <max_cache_size>
覆盖缓存大小的默认上限。缓存越大,使用的内核内存越多,性能越好。如果系统内存够用,将其设为组和密码数据库中条目数的总和。默认值为 200。
-verbose
如果使用了这个选项,syslog 里会有与 nfsuserd 相关的更多的日志信息。
-force
当 nfsuserd 异常退出,且无法启动时,必须使用这个选项以重新启动 nfsuserd 进程。
-manage-gids
让 NFS server 即 nfsd(8) 启用 manage-gids 功能。所有使用 AUTH_SYS 身份验证的 NFS 请求都从 RPC 请求中获取 uid,并使用服务器上 getgrouplist(3) 提供的该 uid 的组列表,而不是 RPC 身份验证器中提供的组列表。这可用于避免 AUTH_SYS 只支持 16 个组身份的限制。
<num_servers>
指定要创建几个 nfsuserd server 进程,最大值 20。默认值 4,已经够用了。NFS server 应当运行足够的 nfsuserd server 进程,最终效果应该是在 NFS server 运行足够的时间后,使用 ps(1) 命令看到有一个或者两个 nfsuserd server 进程几乎不使用任何资源nfsuserd server 进程运行太少会对性能产生重大影响,而运行太多只会占用一些资源,例如进程表条目和交换空间。
Next: 历史, Previous: 描述, Up: FreeBSD 13 NFSv4 nfsuserd man(8) page 2019 中文译本 [Contents]
getgrent(3), getgrouplist(3), getpwent(3), nfsv4(4), group(5), passwd(5), nfsd(8)
Next: BUGS, Previous: 更多信息, Up: FreeBSD 13 NFSv4 nfsuserd man(8) page 2019 中文译本 [Contents]
nfsuserd 工具在 2009 年随 NFSv4 测试子系统被引入。
Previous: 历史, Up: FreeBSD 13 NFSv4 nfsuserd man(8) page 2019 中文译本 [Contents]
nfsuserd 使用 getgrent(3), getgrouplist(3) 和 getpwent(3) 库调用来解析请求,如果 server 处理这些请求失败,并且库函数没有返回值,程序会卡住。查看 group(5) 和 passwd(5) 以获取如何访问数据库的信息。
FreeBSD 13.0 2019.04.06